package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

/**
 * 字符流:java.io.Reader和Writer
 * 上述两个流是抽象类，是所有字符流的超类，定义了所有字符流都具备的读写字符的操作。
 *
 * 字符流都是高级流
 *
 * 转换流:
 * java.io.InputStreamReader和OutputStreamWriter
 * 转换流是一对常用的字符流实现类，实际开发中我们不会直接操作这对流，但是在流链接
 * 中他们是重要的一环
 *
 * 本案例使用转换流了解字符流基础的读写字符的操作(介绍性质为主)
 */
public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //使用字符流向文件osw.txt中写入文本数据
        FileOutputStream fos = new FileOutputStream("osw.txt");
        //转换流在创建时可以明确字符集，那么通过它写出的文字都会使用该字符集转换为字节
        OutputStreamWriter osw
                = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        //字符流支持直接写出字符串，转换流会负责将字符串转换为字节后再通过下面的字节流写出
        osw.write("我是这路上没名字的人,我没有新闻没有人评论.");
        osw.write("要拼尽所有换的普通的剧本，辗转反侧不过谋生。");
        System.out.println("写出完毕");
        osw.close();
    }
}





